/*
 * @Author: ZhangXiaodong
 * @Date: 2025-04-16 00:25:45
 * @LastEditors: ZhangXiaodong
 * @LastEditTime: 2025-04-26 00:17:56
 * @Description: 设置博客
 * @FilePath: /blog-ost/src/controller/blog/set.js
 */
const mysqlPool = require('../../db/mysql/db.pool');

/**
 * 更新博客信息
 * @param {number} id - 博客的 ID
 * @param {Object} body - 要更新的博客信息
 * @returns {Promise<string|boolean>} - 如果没有修改返回提示字符串，更新成功返回 true，失败返回 false
 */
const setBlog = async (id, body) => {
    // 检查 body 是否为空对象
    if (Object.keys(body).length === 0) {
        return '没有任何修改';
    }

    const setClauses = [];
    const values = [];

    // 先处理 updateTime
    setClauses.push('updateTime = NOW()');

    // 动态构建 SET 子句
    for (let key in body) {
        setClauses.push(`${key} = ?`);
        values.push(body[key]);
    }

    // 把 id 加入参数列表
    values.push(id);

    const sql = `UPDATE blogs SET ${setClauses.join(', ')} WHERE id = ?`;

    try {
        const res = await mysqlPool.exec(sql, values);
        return res.affectedRows > 0;
    } catch (error) {
        console.error('更新博客信息时出错:', error);
        return false;
    }
};

module.exports = setBlog;